#ifndef MANEJODEBLOQUES_H_
#define MANEJODEBLOQUES_H_

#include "../Constantes.h"

#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <sstream>
#include <string>
#include <fstream>

using namespace std;


class ManejoDeBloques {

private:

	int tam_bloque;
	string ruta_arch_bloques;


public:

	ManejoDeBloques();


	ManejoDeBloques(int tam_bloque, const string& ruta_arch_bloques);

	ManejoDeBloques(int tam_bloque);

	virtual ~ManejoDeBloques() {};

	void set_tam_bloque(int tam_bloque);

	void set_ruta_arch_bloques(const string& ruta_arch_bloques);


	int get_tam_bloque() const { return this->tam_bloque; }

	const string& get_ruta_arch_bloques() const { return this->ruta_arch_bloques; }


	void crear_arch_vacio() const;

	int get_tam_arch_bloques() const;

	void recuperar_bloque(char* buffer, int pos_arch_bloques);

	void recuperar_bloque_arbol(int nro_bloque, char* buffer);

	int guardar_bloque(char* buffer);

	void guardar_bloque(char* buffer, int pos_arch_bloques);

	void guardar_bloque_arbol(char* buffer, int nro_bloque);

	int get_num_prox_bloque();
};

#endif /* MANEJODEBLOQUES_H_ */
